1. Field of the Invention
This invention relates to a digital wavetable audio synthesizer with delay-based effects processing. More particularly, this invention relates to a digital wavetable audio synthesizer with delay-based effects processing for use in system boards and add-in cards for desktop and portable computers. As an example, the wavetable audio synthesizer of this invention may be used in a PC-based sound card.
2. Brief Description of the Related Technology
Digital audio has become a viable alternative to analog audio. In general, in digital audio, sound waves are represented as a series of number values which can be stored as data in a variety of media including hard disks, compact disks, digital audio tape, and computer RAM and ROM. Digital audio uses such data to provide unique and beneficial editing and signal processing capabilities.
In digital audio, quantization and sampling processes are used to generate the data representing the amplitude (level) element of sound and the frequency (events over time) element of sound. An analog-to-digital converter (ADC) measures the amplitude of a sound signal-in the form of an analog voltage signal-at particular instances or samples. The rate at which the ADC takes these measurements is referred to as the sampling rate. Quantization is a process in which the ADC generates a series of binary or digital numbers representing the amplitude measurements. A digital-to-analog converter (DAC) transforms digital data representing sound into analog voltage signals. These analog voltage signals may then be applied to an audio amplifier and speakers for playing sound.
Several types of digital "synthesizers," i.e. devices that generate sound through audio digital-signal-processing, are now available. One modern type of digital synthesizer is a wavetable synthesizer. Wavetable synthesizers generate sounds through digital processing of entire digitized sound waveforms or portions of digitized sound waveforms stored in wavetable memory.
Wavetable synthesizers generate sounds by "playing back" from wavetable memory, to a DAC, a particular digitized waveform. The addressing rate of the wavetable data controls the frequency or pitch of the analog output. The bit width of the wavetable data affects the resolution of the sound being generated. For example, better resolution can be achieved with 16-bit wide data versus 8-bit wide data. 16-bit digital audio is becoming the standard in the industry.
The digitized waveform data may comprise a complete sound, sampled in its entirety, or only a selected portion of the sound. If the waveform is complex, it may be necessary to store the entire digitized waveform. For uniform, repetitive sounds, a fundamental cycle of the waveform may be stored in a smaller block of wavetable memory. Then, the synthesizer can loop through this block of wavetable memory to generate continuous uniform, repetitive sound. Alternatively, a complex segment of waveform may be stored in its entirety in a larger block of the wavetable memory while only a fundamental cycle of a repetitive segment of the waveform is stored in a smaller block of memory. Then, during playback, the synthesizer will first address or scan through the larger block of memory to playback the complex segment of the waveform and then loop through the smaller block of memory to playback the repetitive segment of the sound.
Wavetable synthesizers typically use wavetable data interpolation to reduce the amount of data required to generate quality sound, to reduce distortion, and to increase the signal-to-noise ratio of the generated sounds. In wavetable data interpolation, at the beginning of each sound's or voice's processing, two data samples, S1 and S2, are read from wavetable data. See Prior Art FIG. 121. The wavetable address contains an integer and a fractional portion. The integer portion addresses S1 data and is incremented by 1 to address S2 data. The fractional portion indicates the distance from S1 towards S2 to interpolate and generate an interpolated sample, S. The address for S is designated by the complete (integer and fractional portions) and current wavetable address. The equation for obtaining the interpolated sample S is: EQU S=S1+(S2-S1).T.sub.[
where T.sub.[ is the distance from S1, towards S2, to S. Through each interpolation, an additional data sample (S) can be created from two data samples (S1 and S2) stored in wavetable memory. Thus, a particular generated sound can be made up of both wavetable data and interpolated data, and thus, the sound will comprise more data than is stored in wavetable memory for this sound. Wavetable synthesizers generate a certain number of voices or sounds at a particular sample rate. The sample rate affects the audio quality of the generated sounds, with slower sample rates degrading audio quality. Since the highest frequency that can be perceived by normal human hearing is 20 KHz, a sampling rate of 44.1 KHz is adequate. 44.1 KHz is the sample rate used by modern CD players. A prior art wavetable synthesizer in a sound card offered by Ultrasound, which is discussed in more detail below, requires a trade off between the number of voices that can be generated at a particular sample rate and the maximum available sample rate. For example, the prior art Ultrasound synthesizer can only generate up to 14 active voices at a 44.1 KHz sample rate but can generate a maximum of 32 voices at a less desirable 19.4 KHz sample rate.
Notes generated by music instruments have a characteristic "envelope" that generally contains attack, decay, sustain, and release segments. FIG. 122 illustrates an example of an envelope with these segments. The data representing the envelope of sound to be generated can be stored in digitized format in a wavetable. Thus, wavetable synthesizers can generate the envelope along with the sound waveform. However, since the additional envelope data may put a strain on memory resources, wavetable synthesizers have been developed with separate envelope generation capabilities. A wavetable synthesizer can generate an envelope by multiplying volume components with the generated sound waveform. As an example, the volume component can be a volume ramp-up or ramp-down until a particular boundary is reached. The particular segment of the envelope being generated dictates the rate of volume ramping and the direction of the ramping (up or down).
Wavetable synthesizers can also be designed to produce stereo sound. After generating a voice having envelope, wavetable synthesizers with stereo capability multiply left and right volume components with the generated voice signal to provide stereo left and right output signals. These wavetable synthesizers are typically provided with panning capability which will place the generated sound in any one of a discrete number of evenly spaced stereo field or pan positions.
Wavetable synthesizers have application in personal computers. Typically, personal computers are manufactured with only limited audio capabilities. These limited capabilities provide monophonic tone generation to provide audible signals to the user concerning various simple functions, such as alarms or other user alert signals. The typical personal computer system has no capability of providing stereo, high-quality audio which is a desired enhancement for multimedia and video game applications, nor do they have built-in capability to generate or synthesize music or other complex sounds. Musical synthesis capability is necessary when the user desires to use a musical composition application to produce or record sounds through the computer to be played on an external instrument, or through analog speakers and in multimedia (CD-ROM) applications as well.
Additionally, users at times desire the capability of using external analog sound sources, such as stereo equipment, microphones, and non-MIDI electrical instruments, to be recorded digitally and/or mixed with digital sources before recording or playback through their computer. To satisfy these demands, a number of add-on products have been developed. One such line of products is referred to in the industry as a sound card. These sound cards are circuit boards carrying a number of integrated circuits, many times including a wavetable synthesizer, and other associated circuitry which the user installs in expansion slots provided by the computer manufacturer. The expansion slots provide an ISA interface to the system bus thereby enabling the host processor to access sound generation and control functions on the board under the control of application software. Typical sound cards also provide MIDI interfaces and game ports to accept inputs from MIDI instruments such as keyboard and joysticks for games.
One prior art sound card is that offered by Advanced Gravis and Forte under the name Ultrasound. This sound card is an expansion slot embodiment which incorporates into one chip (the "GF-1") a wavetable synthesizer, MIDI and game interfaces, DMA control and Adlib Sound Blaster compatibility logic. In addition to this ASIC, the Ultrasound card includes on-board DRAM (1 megabyte) for wavetable data; an address decoding chip; separate analog circuitry for interfacing with analog inputs and outputs; a separate programmable ISA bus interface chip; an interrupt PAL chip; and a separate digital-to-analog/analog-to-digital converter chip. See U.S. patent application Ser. No. 072,838, entitled "Wave Table Synthesizer," by Travers, et al., which is incorporated herein by reference.
The synthesizer of the Ultrasound card is a state of the art wavetable synthesizer. It has stereo capability and can generate 32 independent voices, allowing for multi-timbrel (i.e., several different instrument sounds/voices at one time), polyphonic (i.e., chords), and high fidelity sounds to be simultaneously generated. The Ultrasound's wavetable synthesizer generates envelopes of sound waveforms through the use of volume control.
However, the prior art Ultrasound wavetable synthesizer has several limitations and areas that can be improved. For example, it can generate only up to 14 voices at the desirable 44.1 KHz sample rate, and can generate 15-32 voices only at lower audio degrading sample rates. The Ultrasound synthesizer also does not have hardware for automatically adding tremolo and vibrato to any of the possible 32 voices. Furthermore, it does not have hardware for delay-based effects processing. The Ultrasound synthesizer requires complex system software to be programmed to add tremolo and vibrato effects to any voice, or to generate delay-based effects, such as echo, reverb, chorus, and flange to any voice. Any effects that can be generated are likely crude. Alternatively, the audio signals generated by the Ultrasound synthesizer can be sent to an off-chip digital signal processor for generating delay-based effects to these signals. However, this obviously requires additional hardware and wiring. Furthermore, because these digital signal processors operate on the synthesizer's output audio signal, which is a compilation of the voices generated in a given time, they cannot generate delay-based effects to select voices in this compilation of voices.
An additional limitation of the Ultrasound wavetable synthesizer is that it only has 16 stereo pan positions. A need exists for the ability to place generated voices anywhere in the stereo field.
Another example of an area for improvement in the Ultrasound synthesizer is the potential problem of zipper noise created during particular volume changes. Zipper noise occurs in the Ultrasound synthesizer when it is incrementing the volume of a generated voice at a slow rate, but the volume increment is large.
The wavetable synthesizer of the present invention overcomes each of the above-mentioned limitations and problems in a number of unique and efficient ways. Furthermore, the wavetable synthesizer of the present invention also provides enhanced capabilities heretofore unavailable.